Multimedia personal computers are capable of displaying television and other full-motion video on a standard VGA-type monitor. However, the present technology used in the supporting video cards is unsatisfactory. Picture quality is poor because of the difference between interlaced television/video images and non-interlaced VGA images, and between video stream input rates and monitor output display rates.
A television video image or "frame" is composed of a number of lines of picture data with the odd numbered lines making up one "field" while the even numbered lines make up a second field. The fields are captured separately by the video camera; if the object moves between the scans of the first field and the second field the image will be displaced in location between the fields. The frame is output by displaying the odd numbered lines in the first field and then the even numbered lines in the second field, a technique known as "interlacing". Television or other monitors capable of handling such a display are referred to as interlaced monitors. Televisions, in particular, are manufactured with high-persistence phosphor screens calibrated to work with the human eye's ability to act as a vision filter by preserving the image of one field long enough for the eye to register it and then allowing the image to fade before the image of the next field is displayed thus making the displacement of the object between the two fields unnoticeable.
An interlaced frame can be displayed on a non-interlaced monitor by merging the fields into a single image so that all the picture lines are displayed at the same time. However, an object in motion then appears to be torn or skewed since it appears at different locations in the lines of the two fields. In addition, parts of the object may vanish and reappear, producing what is known in the art as "motion artifacts". On a low-persistence phosphor monitor, such as the majority of computer monitors in use today, motion artifacts can be reduced by displaying the video output in interlaced format at the highest possible output display, or scan, rate. An interlaced scan rate of 120 Hz provides the equivalence of a 60 Hz non-interlaced scan rate which eliminates many of the artifacts.
However, increasing the scan rate of the monitor introduces another type of defect. Standard video is input to the monitor at the NTSC (National Television System Committee) television rate of 30 Hz, or 30 frames a second. A monitor with a 72 Hz non-interlaced scan rate "refreshes" the image on the screen at a rate of 72 frames a second. Because the output rate is asynchronous relative to the input rate, the output scan rate periodically gets "out-of-sync" with the input capture rate and the monitor displays an image that mixes the previously-output frame with the incoming frame.
One solution to the mixing of images is to synchronize the input and the output rates, referred to in the art as "genlocking", so that the output display rate is an integer multiple of the input capture rate. For example, a monitor with a 72 Hz display rate genlocked in a one-to-one relationship with the input capture rate receives 30 frames a second and displays each frame it is received; a two-to-one genlock would permit the monitor to run at 60 Hz. The higher the genlock ratio, the greater the permitted scan rate and the greater the reduction in motion artifacts. However, genlocking requires the addition of a timing circuit to enforce the synchronization which adds expense and complexity to a graphics controller implementing a genlock solution.
Another way to resolve the problem of intermixed frames at high scan rates is to save the last frame in a memory so that the monitor can display the same frame more than once. Most computer graphics controller subsystems in use today incorporate such memory, called a frame buffer. Using a frame buffer, however, is not a complete solution. If the memory can hold only a single frame of video, information in the buffer being displayed is periodically overwritten with input data, producing a sparkling effect in the image.
Other proposals use two frame buffers so that one buffer is being displayed while the other is being filled with input data. However, this approach only works when the output display rate is less than or equal to twice the input capture rate. Otherwise, the output display rate periodically "overtakes" the input capture rate and begins displaying data from a buffer as it is being filled, again causing the image to sparkle. Since current monitor display rates range from 75 Hz to 90 Hz and above, double buffering has limited value.
U.S. Pat. No. 5,402,147 to Chen et al., describes a dual buffer approach with a third, overflow, buffer that is smaller than the two frame buffers. Input data received before either frame buffer is ready for new data is written into the overflow buffer. When the data in one frame buffer has been displayed, the data in the overflow buffer is transferred to that frame buffer. The success of this method requires precisely determining the amount of overflow data to be captured, and careful timing of the transfer between the overflow and frame buffers, or the overflow buffer itself will overflow. In addition, an apparatus using this method is configured for a single output display rate and cannot be easily adapted to different output display rates because of the critical nature of the transfer timing.
Other inventions use more than two buffers but distribute the data for a single image among the buffers. Distributing the data allows manipulation of portions of the image prior to display (shrinking it, merging it with other data, or displaying it in a "window" on the screen) but requires complex timing circuits to manage writing and reading the data distributed among the buffers.
What is needed, then, is a general buffering solution that solves the video quality problems for multiple output display rates, and permits the monitor to operate asynchronously from the input capture rate without the need for complex timing algorithms.